package com.blog.cmrpersonalblog.dto.notification.respnose;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 通知设置响应DTO
 */
@Data
public class NotificationSettingsResponse {

    /**
     * 设置ID
     */
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 关注通知开关
     */
    private Boolean followEnabled;

    /**
     * 点赞通知开关
     */
    private Boolean likeEnabled;

    /**
     * 评论通知开关
     */
    private Boolean commentEnabled;

    /**
     * 回复通知开关
     */
    private Boolean replyEnabled;

    /**
     * @提及通知开关
     */
    private Boolean mentionEnabled;

    /**
     * 系统通知开关
     */
    private Boolean systemEnabled;

    /**
     * 收藏通知开关
     */
    private Boolean collectEnabled;

    /**
     * 免打扰模式
     */
    private Boolean doNotDisturbEnabled;

    /**
     * 免打扰开始时间
     */
    @JsonFormat(pattern = "HH:mm:ss")
    private LocalTime doNotDisturbStart;

    /**
     * 免打扰结束时间
     */
    @JsonFormat(pattern = "HH:mm:ss")
    private LocalTime doNotDisturbEnd;

    /**
     * 通知聚合开关
     */
    private Boolean notificationAggregationEnabled;

    /**
     * WebSocket推送开关
     */
    private Boolean websocketEnabled;

    /**
     * 邮件通知开关
     */
    private Boolean emailNotificationEnabled;

    /**
     * 关注邮件通知
     */
    private Boolean emailFollowEnabled;

    /**
     * 评论邮件通知
     */
    private Boolean emailCommentEnabled;

    /**
     * 回复邮件通知
     */
    private Boolean emailReplyEnabled;

    /**
     * @提及邮件通知
     */
    private Boolean emailMentionEnabled;

    /**
     * 系统邮件通知
     */
    private Boolean emailSystemEnabled;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}

